Due to recent progress in integration technology video cameras are becoming more compact, less expensive, and generally available and widely used in various situations. In particular, in order to quickly collect information during a disaster, compact video cameras are being mounted to robots that perform searches for disaster victims in locations no accessible to people, to pilotless helicopters for disaster state assessment from the air, and to remotely operated rescue helicopters and the like.
However, robots to which video cameras are mounted vibrate themselves, and travel in situations where there are rough road surfaces and scattered obstacles due to earthquakes. Shake hence occurs in pictures sent from cameras mounted to robots.
This accordingly makes it difficult for an operator to immediately grasp a situation, with the possibility of screen sickness and operation being affected. There is consequently a need to perform video image processing in real time and to reduce shaking in pictures in order to suppress the influence from such picture shake.
Methods are currently being researched for digital cameras to reduce shake, with examples including camera shake correction functions such as electrical, optical, image sensor shifting methods and lens unit swing methods. However, such corrections functions are functions installed in a camera and are only capable of correcting pictures taken with that camera. This accordingly inevitably tends to making cameras larger in size and more expensive.
Due to recent developments in digital cameras and personal computers (PCs) processing such as video image processing can now be performed simply on a standard home PC, and there is a desire for stabilization processing for performing on a PC in order to improve versatility. However, real time processing is difficult due to the vast volume of data in a video image and the heavy load such processing imposes on the Central Processing Unit (CPU).
Use of a Graphics Processing Unit (GPU), graphics hardware specialized for high speed graphical processing, has been considered. GPUs are also installed in standard PCs and are capable of high speed computations using parallel processing. GPUs are available with processing capabilities, and in particular floating point computation capabilities, that are 10 times those of a CPU or greater.
There is a description by the inventors of “Stabilization of Video Images Using a GPU” as a technique for shake correction using a GPU (see Non-Patent Document 1). The technique described in Non-Patent Document 1 uses a BFGS method (a quasi-Newtonian method) algorithm when employing affine transformation for global motion estimation, and shake in the video image is corrected based on the estimated global motion. There are also improved techniques for global motion estimation using BFGS methods, such as those employed in the patent application for Japanese Patent Application 2008-162477 (filed Jun. 20, 2008).    Non-Patent Document 1: Fujisawa and two others, “Stabilization of Video Images Using a GPU”, Information Processing Society of Japan, IPSJ Journal Vol. 49, No. 2, pages 1 to 8.